//438. 找到字符串中所有字母异位词

/*
    一般字符串的题的解法 (暴力)搜索
                        dp
                        双指针  (两头往中间挤  快慢指针 滑动窗口)
 */


/**
 * @param {string} s
 * @param {string} p
 * @return {number[]}
 */
var findAnagrams = function(s, p) {
    var letterInP = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
    for(var i = 0 ; i<p.length;i++){
        var code = p.charCodeAt(i) - p.charCodeAt.call('a',0);
        letterInP[code]++;
    }
    var ans = [];
    var l = 0;
    var r =0;
    while(l<=s.length-p.length){
        //增大窗口
        while(r-l<p.length){
            var code = s.charCodeAt(r) - s.charCodeAt.call('a',0);
            letterInP[code]--;
            r++;
        }
        //窗口满足了,开始判断了
        if(isOk(letterInP))ans.push(l);
        //缩小窗口
        var code = s.charCodeAt(l) - s.charCodeAt.call('a',0);
        letterInP[code]++;
        l++;
    }



    function isOk(letters){
        for(var i=0;i<letters.length;i++){
            if(letters[i]!==0) return false;
        }
        return true;
    }

    return ans;
    
};


ans = findAnagrams("abab",'ab');
console.log(ans);
